Prior systems based on isochronous processors have typically relied on read only memory (ROM) for rapid access to code that needs to be rapidly executed by the processor. ROM has long been a preferred code storage device for executable applications where uninterrupted and predictable access is an issue. However, ROM cannot be easily reprogrammed or programmed at the last minute. A ROM is typically masked out long in advance for a specific code/application and once masked and subsequently manufactured it cannot be changed in most scenarios. This thus results in large inventories of product that may or may not be well received in the marketplace. For consumer related devices where inventory must be produced before demand can be accurately gauged, this may result in unsold inventory.
While use of flash memory allows for different programs to be loaded on the same hardware quickly and easily, use of certain types of flash memory is problematic in isochronous systems due to the operations that the memory performs to ensure data reliability. The background operations performed to ensure data integrity result in unpredictable latency times when reading data from the flash memory. This is especially true for NAND flash memory.
In an isochronous system that incorporates NAND flash memory the unpredictable latency times of the flash memory are problematic. This is particularly true for read operations.
NAND memory typically includes memory management operations to accommodate for the physical limitations of the NAND memory cells. These operations may be taking place when a read command is received, and thus the called for data may not be immediately received.